import type { FlexValues } from '@/types'
export function parseFlex(flex: string | number): FlexValues {
  // 处理数字类型
  if (typeof flex === 'number') {
    return {
      flexGrow: flex,
      flexShrink: 1,
      flexBasis: '0%'
    };
  }

  // 处理字符串类型
  const values = flex.split(' ');
  
  // 处理单值语法
  if (values.length === 1) {
    const value = values[0];
    // 处理关键字
    if (value === 'auto') {
      return {
        flexGrow: 1,
        flexShrink: 1,
        flexBasis: 'auto'
      };
    }
    if (value === 'none') {
      return {
        flexGrow: 0,
        flexShrink: 0,
        flexBasis: 'auto'
      };
    }
    // 处理数字
    if (!isNaN(Number(value))) {
      return {
        flexGrow: Number(value),
        flexShrink: 1,
        flexBasis: '0%'
      };
    }
  }

  // 处理双值或三值语法
  return {
    flexGrow: Number(values[0]) || 0,
    flexShrink: Number(values[1]) || 1,
    flexBasis: values[2] || '0%'
  };
}